﻿using System;
namespace Producers.Karis.Xtee.Riik.Ee.Producer.Karis {
    
    
    [global::Xtee.Core.Attributes.XmlTypeAttribute(Name="kinnip_koht_andmed", Namespace="http://producers.karis.xtee.riik.ee/producer/karis", Target=typeof(KinnipKohtAndmed))]
    public class KinnipKohtAndmedSerializer : global::Xtee.Core.Types.AbstractXteeSerializable {
        
        protected IKinnipKohtAndmed clazz;
        
        public KinnipKohtAndmedSerializer(IKinnipKohtAndmed clazz) {
            this.clazz = clazz;
        }
        
        public override void WriteXml(global::Xtee.Core.IXteeXmlWriter Writer) {
            base.WriteXml(Writer);
            Writer.WriteStartElement("ttKokku.cKp_koht");
            if (clazz.TtKokkucKpKoht!=null) {
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.TtKokkucKpKoht))).ToString());
            }
            else {
                Writer.WriteAttributeString("xsi", "nil", null, "1");
            }
            Writer.WriteEndElement();
            Writer.WriteStartElement("ttKokku.dSaabus");
            if (clazz.TtKokkudSaabus!=null) {
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "date");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDate(((System.DateTime)(clazz.TtKokkudSaabus))).ToString());
            }
            else {
                Writer.WriteAttributeString("xsi", "nil", null, "1");
            }
            Writer.WriteEndElement();
            Writer.WriteStartElement("ttKokku.dLahkus");
            if (clazz.TtKokkudLahkus!=null) {
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "date");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdDate(((System.DateTime)(clazz.TtKokkudLahkus))).ToString());
            }
            else {
                Writer.WriteAttributeString("xsi", "nil", null, "1");
            }
            Writer.WriteEndElement();
            Writer.WriteStartElement("ttKokku.cLiik_pohjus");
            if (clazz.TtKokkucLiikPohjus!=null) {
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.TtKokkucLiikPohjus))).ToString());
            }
            else {
                Writer.WriteAttributeString("xsi", "nil", null, "1");
            }
            Writer.WriteEndElement();
            Writer.WriteStartElement("ttKokku.cKp_lisa");
            if (clazz.TtKokkucKpLisa!=null) {
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.TtKokkucKpLisa))).ToString());
            }
            else {
                Writer.WriteAttributeString("xsi", "nil", null, "1");
            }
            Writer.WriteEndElement();
            Writer.WriteStartElement("ttKokku.cKp_elukoht");
            if (clazz.TtKokkucKpElukoht!=null) {
                Writer.WriteTypeAttribute("http://www.w3.org/2001/XMLSchema", "string");
                Writer.WriteString(new global::Xtee.Core.Schema.XsdString(((string)(clazz.TtKokkucKpElukoht))).ToString());
            }
            else {
                Writer.WriteAttributeString("xsi", "nil", null, "1");
            }
            Writer.WriteEndElement();
        }
        
        public override void ReadXml(global::Xtee.Core.IXteeXmlReader Reader) {
            base.ReadXml(Reader);
        START:
            if ((Reader.LocalName == "ttKokku.cKp_koht")) {
                goto ttKokkucKp_koht;
            }
            else {
                if ((Reader.LocalName == "ttKokku.dSaabus")) {
                    goto ttKokkudSaabus;
                }
                else {
                    if ((Reader.LocalName == "ttKokku.dLahkus")) {
                        goto ttKokkudLahkus;
                    }
                    else {
                        if ((Reader.LocalName == "ttKokku.cLiik_pohjus")) {
                            goto ttKokkucLiik_pohjus;
                        }
                        else {
                            if ((Reader.LocalName == "ttKokku.cKp_lisa")) {
                                goto ttKokkucKp_lisa;
                            }
                            else {
                                if ((Reader.LocalName == "ttKokku.cKp_elukoht")) {
                                    goto ttKokkucKp_elukoht;
                                }
                                else {
                                    return;
                                }
                            }
                        }
                    }
                }
            }
        ttKokkucKp_koht:
            if ((Reader.IsElementNil() == false)) {
                clazz.TtKokkucKpKoht = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("ttKokku.cKp_koht")).Value;
            }
            else {
                Reader.Skip();
            }
            goto START;
        ttKokkudSaabus:
            if ((Reader.IsElementNil() == false)) {
                clazz.TtKokkudSaabus = new global::Xtee.Core.Schema.XsdDate(Reader.ReadElementString("ttKokku.dSaabus")).Value;
            }
            else {
                Reader.Skip();
            }
            goto START;
        ttKokkudLahkus:
            if ((Reader.IsElementNil() == false)) {
                clazz.TtKokkudLahkus = new global::Xtee.Core.Schema.XsdDate(Reader.ReadElementString("ttKokku.dLahkus")).Value;
            }
            else {
                Reader.Skip();
            }
            goto START;
        ttKokkucLiik_pohjus:
            if ((Reader.IsElementNil() == false)) {
                clazz.TtKokkucLiikPohjus = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("ttKokku.cLiik_pohjus")).Value;
            }
            else {
                Reader.Skip();
            }
            goto START;
        ttKokkucKp_lisa:
            if ((Reader.IsElementNil() == false)) {
                clazz.TtKokkucKpLisa = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("ttKokku.cKp_lisa")).Value;
            }
            else {
                Reader.Skip();
            }
            goto START;
        ttKokkucKp_elukoht:
            if ((Reader.IsElementNil() == false)) {
                clazz.TtKokkucKpElukoht = new global::Xtee.Core.Schema.XsdString(Reader.ReadElementString("ttKokku.cKp_elukoht")).Value;
            }
            else {
                Reader.Skip();
            }
            goto START;
        }
    }
}
